package AbstractFactoryMethodPattern.example.framework;

public abstract class Factory {
    public final Product newCPU(String type) {
        return createCPU(type);
    }

    public final Product newRAM(String type) {
        return createRAM(type);
    }

    public final Product newPhone(String type) {
        return createPhone(type);
    }

    public final Product newComputer(String type) {
        return createComputer(type);
    }

    public abstract Product createCPU(String type);

    public abstract Product createRAM(String type);

    public abstract Product createPhone(String type);

    public abstract Product createComputer(String type);
}
